This invention relates to an apparatus and method for controlling a robot, and more particularly, to a versatile control system suitable for controlling robots of various electromechanical configurations.
Portions of this patent application contain materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document, or the patent disclosure, as it appears in the Patent and Trademark Office.
Industrial robots and similar highly flexible machine tools gained commercial acceptance during the late 1970s. Since then, the use of industrial robots has only increased, particularly for automobile manufacturing.
The guiding purpose for industrial robots is manufacturing flexibility. Robots allow assembly lines and work cells to make different articles with no or minimal manual equipment changes. The list of robot applications in manufacturing is long and ever increasing. Examples include computer vision inspection, spot and arc welding, spray painting, drilling, part placement, and adhesive application.
The boundary between robots and machine tools is not strictly defined. Compared with conventional machine tools, robots generally have more joints (or axes) of motion thereby offering more degrees of freedom for positioning an end effector. In the robotics field, the term xe2x80x9cend effectorxe2x80x9d has been adopted to cover the variety of active equipment carried by robots. Such equipment varies according to the manufacturing application, e.g. spot welding.
Robots generally include positioning arms with mechanical joints, actuators such as motors for causing movement about the joints, and sensors which aid in determining the position (or pose) of the robot. Although most include these core components, industrial robots new and old otherwise vary greatly in their electromechanical configurations.
For example, some robots rely only on revolute, (i.e. rotary) joints, while some are equipped with combinations of linear and revolute axes. Robots with a series of extending arms and revolute joints have been labeled articulating robots.
Even among a given class of robots there is mechanical variation. The revolute joints of articulating robots may be, for example, offset from their supporting armxe2x80x94a shoulder joint, centered to the supporting armxe2x80x94an elbow joint or axially aligned with the supporting armxe2x80x94a wrist joint. Likewise, linear joints may be co-linear or orthogonal. Actuators and feedback sensors are another source of the varying configurations. For example; some robots are equipped with stepper motors, others servo motors.
Electronic control systems are employed to control and program the actions of robots. For the necessary coordinated action between the end effector and the robot positioning, robot control systems preferably provide some level of software programming and an interface to field I/O and end effector subsystems. Conventional robot control systems are collections of customized electronics that vary according to robot configuration and robot manufacturer.
In manufacturing processes, robots are directed by a list of control instruction to move their end effector through a series of points in the robot workspace. The sequence (or program) of robot instructions are preferably maintained in a non-volatile storage system (e.g. a computer file on magnetic-disk).
Manufacturing companies, the robot users, through their engineers and technicians, have come to demand two important features from manufacturing control systems. First, robot users seek control systems implemented using commercially standard computers and operating systems rather than customized proprietary systems. This trend toward the use of commercially standard computer hardware and software has been labeled the xe2x80x9copen systems movement.xe2x80x9d
Control systems based on standard computers are preferred because they offer robot users simplified access to manufacturing data via standard networks and I/O devices (e.g. standard floppy drives), the ability to run other software, and a competitive marketplace for replacement and expansion parts. Underlying the open systems movement is the goal of reducing robot users"" long-term reliance on machine tool and robot manufacturers for system changes and maintenance.
A second feature sought by robot users is a common operator and programmer interface for all robots, facility (if not company) wide. A common user interface for all robots reduces the need for specialized operator training on how to use the customized proprietary systems.
With respect to the open-systems feature, efforts at delivering a robot control system based on standard, general purpose computer systems have not been fully successful because of the limitations of general purpose operating systems. Robot safety and accuracy requirements dictate that robot control systems be highly reliable, i.e. crash resistant, and tied to real-time. The multi-feature design objectives for general purpose operating systems such as Microsoft Windows NT(copyright) have yielded very complex, somewhat unreliable software platforms. Moreover, such systems cannot guarantee execution of control loops in real-time.
With respect to the common operator interface features, attempts to offer even limited standards to operator interfaces have not extended beyond a specific robot manufacturer. Notwithstanding the difficulty in getting different robot manufacturers to cooperate, the wide variety of electromechanical configurations has heretofore substantially blocked the development of robot control systems with a common operator interface.
Accordingly, it would be desirable to provide an improved robot control system that both employs commercially standard computer systems and accommodates robots of different configurations. Specifically, it would be desirable to provide the advantages of open systems and a common operator interface to robot control.
Robot control systems of the present invention provide robot control via commercially standard, general purpose computer hardware and software. The control systems and methods according to the present invention are usable with robots of varying electromechanical configurations thereby allowing a common operator interface for robots from different robot manufacturers.
The present invention provides a control system for running or processing a program of robot instructions for robots equipped with a mechanical joint, a mechanical actuator to move the joint and a position feedback sensor. The robot mechanical actuators receive an activation signal and the feedback sensor provides a position signal.
A control system according to the present invention includes a general purpose computer with a general purpose operating system and a real-time computer subsystem in electronic communication with the general purpose computer and operably linked to the mechanical actuator and the position feedback sensor. The general purpose computer includes a program execution module to selectively start and stop processing of the program of robot instructions and to generate a plurality of robot move commands.
Within the real-time computer system is a move command data buffer for storing a plurality of move commands. The real-time computer subsystem also includes a robot move module and a control algorithm. The move module is linked to the data buffer to sequentially process the plurality of move commands and calculate a required position for the mechanical joint. The control algorithm is in software communication with the robot move module to repeatedly calculate a required activation signal from the feedback signal and the required position for the mechanical joint.
Another aspect of the present invention provides a robot control system suitable for controlling robots of different electromechanical configurations. The control system includes a robot-independent computer unit in electronic and software communications with a robot-specific controller unit.
The robot-independent computer unit is operably linked to the robot by an I/O interface and includes a video display and a first digital processor running an operator interface module for creating a sequence of robot move commands. The robot-specific controller unit includes a second digital processor running a real-time tied operating system and a robot move module for executing the robot move commands.
The operator interface module preferably includes a configuration variable for storing data defining the electromechanical configuration of the robot, a first code segment for generating a first operator display according to a first electromechanical configuration, a second code segment for generating a second operator display according to a second electromechanical configuration, and a third code segment for selecting the first or second code segment according to the electromechanical configuration.